import { createApp } from 'vue'
import App from './App.vue'
import { createRouter, createWebHistory } from 'vue-router'
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
import { ref, computed } from 'vue'

// 导入页面组件
import HomePage from './pages/HomePage.vue'
import BiddingLibrary from './pages/BiddingLibrary.vue'
import NotificationPage from './pages/Notification.vue'
import AIChat from './pages/AIChat.vue'
import UserSettings from './pages/UserSettings.vue'
import PrivacyPolicy from './pages/PrivacyPolicy.vue'
import UserAgreement from './pages/UserAgreement.vue'
import Login from './pages/Login.vue'
import Register from './pages/Register.vue'
import ForgotPassword from './pages/ForgotPassword.vue'
import ChangePassword from './pages/ChangePassword.vue'

// 创建路由
const routes = [
  { 
    path: '/', 
    component: HomePage, 
    name: 'Home',
    meta: { requiresAuth: true }
  },
  { 
    path: '/bidding-library', 
    component: BiddingLibrary, 
    name: 'BiddingLibrary',
    meta: { requiresAuth: true }
  },
  { 
    path: '/notification', 
    component: NotificationPage, 
    name: 'Notification',
    meta: { requiresAuth: true }
  },
  { 
    path: '/aichat', 
    component: AIChat, 
    name: 'AIChat',
    meta: { requiresAuth: true }
  },
  { 
    path: '/user-settings', 
    component: UserSettings, 
    name: 'UserSettings',
    meta: { requiresAuth: true }
  },
  { 
    path: '/privacy-policy', 
    component: PrivacyPolicy, 
    name: 'PrivacyPolicy' 
  },
  { 
    path: '/user-agreement', 
    component: UserAgreement, 
    name: 'UserAgreement' 
  },
  {
    path: '/login',
    component: Login,
    name: 'Login'
  },
  {
    path: '/register',
    component: Register,
    name: 'Register'
  },
  {
    path: '/forgot-password',
    component: ForgotPassword,
    name: 'ForgotPassword'
  },
  {
    path: '/change-password',
    component: ChangePassword,
    name: 'ChangePassword'
  },
]

const router = createRouter({
  history: createWebHistory(),
  routes
})

// 添加路由守卫
router.beforeEach((to, from, next) => {
  const isAuthenticated = sessionStorage.getItem('currentUser');
  
  // 如果需要认证且未登录，则重定向到登录页面
  if (to.matched.some(record => record.meta.requiresAuth) && !isAuthenticated) {
    next({ name: 'Login' });
  } else {
    // 如果已登录且尝试访问登录/注册页面，则重定向到首页
    if (isAuthenticated && (to.name === 'Login' || to.name === 'Register')) {
      next({ name: 'Home' });
    } else {
      next();
    }
  }
});

const app = createApp(App)

// 创建全局通知数据
const notifications = ref([
  {
    id: 1,
    title: '招标文件分析完成提醒',
    message: '您的招标文件分析已完成，请查看详情。',
    time: '2025-06-23 16:51:24',
    read: false,
    biddingFile: '(定稿) 鲁抗医药SS-10-2项目、SS-16项目变压器采购 (1)'
  },
  {
    id: 2,
    title: '招标文件分析开始提醒',
    message: '您的招标文件已开始分析，请稍候。',
    time: '2025-06-23 16:51:24',
    read: false,
    biddingFile: '(招标文件)国家电力投资集团有限公司物资装备分公司二〇二四年度第一批总包送物资电商化采购（箱变、开关柜、元切补偿、源母联架、敞侧母架）'
  },
  {
    id: 3,
    title: '招标文件分析完成提醒',
    message: '您的招标文件分析已完成，请查看详情。',
    time: '2025-06-23 14:30:15',
    read: true,
    biddingFile: '(招标文件)日用变压器、单板配电变压器、起重机变压器及其体及配套生产设备 (1)'
  },
  {
    id: 4,
    title: '招标文件分析开始提醒',
    message: '您的招标文件已开始分析，请稍候。',
    time: '2025-06-22 14:30:15',
    read: false,
    biddingFile: '01-招标文件—浙江山鹰77万吨项目自干式变压器采购项目'
  },
  {
    id: 5,
    title: '招标文件分析完成提醒',
    message: '您的招标文件分析已完成，请查看详情。',
    time: '2025-06-22 10:15:30',
    read: true,
    biddingFile: '1_招标文件BTXCLZB-204-004---宝珠新材料干式变压器招标'
  },
  {
    id: 6,
    title: '招标文件分析开始提醒',
    message: '您的招标文件已开始分析，请稍候。',
    time: '2025-06-21 16:45:20',
    read: false,
    biddingFile: '招标文件示例6'
  },
  {
    id: 7,
    title: '招标文件分析完成提醒',
    message: '您的招标文件分析已完成，请查看详情。',
    time: '2025-06-21 09:30:45',
    read: true,
    biddingFile: '招标文件示例7'
  },
  {
    id: 8,
    title: '招标文件分析开始提醒',
    message: '您的招标文件已开始分析，请稍候。',
    time: '2025-06-20 14:20:10',
    read: false,
    biddingFile: '招标文件示例8'
  },
  {
    id: 9,
    title: '招标文件分析完成提醒',
    message: '您的招标文件分析已完成，请查看详情。',
    time: '2025-06-20 11:05:30',
    read: true,
    biddingFile: '招标文件示例9'
  },
  {
    id: 10,
    title: '招标文件分析开始提醒',
    message: '您的招标文件已开始分析，请稍候。',
    time: '2025-06-19 15:40:25',
    read: false,
    biddingFile: '招标文件示例10'
  },
  {
    id: 11,
    title: '招标文件分析完成提醒',
    message: '您的招标文件分析已完成，请查看详情。',
    time: '2025-06-19 10:25:15',
    read: true,
    biddingFile: '招标文件示例11'
  },
  {
    id: 12,
    title: '招标文件分析开始提醒',
    message: '您的招标文件已开始分析，请稍候。',
    time: '2025-06-18 16:30:40',
    read: false,
    biddingFile: '招标文件示例12'
  },
  {
    id: 13,
    title: '招标文件分析完成提醒',
    message: '您的招标文件分析已完成，请查看详情。',
    time: '2025-06-18 09:15:20',
    read: true,
    biddingFile: '招标文件示例13'
  },
  {
    id: 14,
    title: '招标文件分析开始提醒',
    message: '您的招标文件已开始分析，请稍候。',
    time: '2025-06-17 14:50:35',
    read: false,
    biddingFile: '招标文件示例14'
  },
  {
    id: 15,
    title: '招标文件分析完成提醒',
    message: '您的招标文件分析已完成，请查看详情。',
    time: '2025-06-17 11:10:25',
    read: true,
    biddingFile: '招标文件示例15'
  },
  {
    id: 16,
    title: '招标文件分析开始提醒',
    message: '您的招标文件已开始分析，请稍候。',
    time: '2025-06-16 15:25:30',
    read: false,
    biddingFile: '招标文件示例16'
  },
  {
    id: 17,
    title: '招标文件分析完成提醒',
    message: '您的招标文件分析已完成，请查看详情。',
    time: '2025-06-16 10:40:15',
    read: true,
    biddingFile: '招标文件示例17'
  },
  {
    id: 18,
    title: '招标文件分析开始提醒',
    message: '您的招标文件已开始分析，请稍候。',
    time: '2025-06-15 15:35:20',
    read: false,
    biddingFile: '2024年第一批干式变压器框架招标文件'
  },
  {
    id: 19,
    title: '招标文件分析完成提醒',
    message: '您的招标文件分析已完成，请查看详情。',
    time: '2025-06-15 09:25:10',
    read: true,
    biddingFile: '国网江苏省电力有限公司2024年配电网项目第二次干式变压器采购'
  },
  {
    id: 20,
    title: '招标文件分析开始提醒',
    message: '您的招标文件已开始分析，请稍候。',
    time: '2025-06-14 16:40:30',
    read: false,
    biddingFile: '浙江省电力公司2024年第三批变压器类物资框架招标文件'
  },
  {
    id: 21,
    title: '招标文件分析完成提醒',
    message: '您的招标文件分析已完成，请查看详情。',
    time: '2025-06-14 11:20:45',
    read: true,
    biddingFile: '南方电网公司2024年主网干式变压器第一批采购招标'
  },
  {
    id: 22,
    title: '招标文件分析开始提醒',
    message: '您的招标文件已开始分析，请稍候。',
    time: '2025-06-13 14:15:25',
    read: false,
    biddingFile: '国家电网有限公司2024年配电变压器第二次集采招标文件'
  },
  {
    id: 23,
    title: '招标文件分析完成提醒',
    message: '您的招标文件分析已完成，请查看详情。',
    time: '2025-06-13 10:30:15',
    read: true,
    biddingFile: '广东电网有限责任公司2024年第二批干式变压器招标项目'
  }
]);

// 提供全局通知数据
app.provide('globalNotifications', {
  notifications,
  unreadCount: computed(() => notifications.value.filter(item => !item.read).length),
  unreadNotifications: computed(() => notifications.value.filter(item => !item.read)),
  markAsRead: (id) => {
    const notification = notifications.value.find(item => item.id === id);
    if (notification) {
      notification.read = true;
    }
  },
  markAllAsRead: () => {
    notifications.value.forEach(item => {
      item.read = true;
    });
  }
});

// 创建全局用户认证服务
const authService = {
  isAuthenticated: computed(() => !!sessionStorage.getItem('currentUser')),
  currentUser: computed(() => sessionStorage.getItem('currentUser')),
  login(username) {
    sessionStorage.setItem('currentUser', username);
  },
  logout() {
    sessionStorage.removeItem('currentUser');
    router.push('/login');
  }
};

app.provide('auth', authService);

// 使用插件
app.use(router)
app.use(ElementPlus)

app.mount('#app')